home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Controls / Visual Basic Controls.iso / vbcontrol / sheriffa / main.bas < prev    next >
Encoding:
BASIC Source File  |  1999-05-29  |  6.0 KB  |  205 lines

  1. Attribute VB_Name = "MainVB"
  2. Public Const PRODUCT_ID = "9758-3050-1918-9292-6466"
  3. Public Const PRODUCT_NAME = "SlsDemo VB version"
  4. Public Const USER_NAME = "SlsDemo VB User"
  5. Public Const LICENCE_PATH = "c:\temp"
  6. Public Const LICENCE_FULL = 1
  7. Public Const LICENCE_DEMO = 2
  8. Public Const LICENCE_EXIT = 3
  9.  
  10. Public Const RUN_FULL = 1
  11. Public Const RUN_DEMO = 2
  12.  
  13. Public g_nRunMode As Integer
  14. Public fMainForm As frmMain
  15. Public Sheriff As Object
  16.  
  17.  
  18. Sub Main()
  19.            
  20.     Dim hr As Long
  21.     Set fMainForm = New frmMain
  22.     
  23.     Set Sheriff = CreateObject("Sheriff.Sheriff")
  24.     'Initialize Sheriff
  25.     Sheriff.ProductID = PRODUCT_ID
  26.     Sheriff.ProductName = PRODUCT_NAME
  27.     Sheriff.UserName = USER_NAME
  28.   
  29.     'First of all, Challenge Sheriff
  30.     Dim bChallenge As Boolean
  31.     bChallenge = ChallengeSheriff()
  32.     If (bChallenge = False) Then
  33.         End
  34.     End If
  35.         
  36.     'Check if the product is installed
  37.     Dim bProductLicensed As Boolean
  38.     bProductLicensed = Sheriff.IsProductLicensed()
  39.     If (bProductLicensed = False) Then
  40.     'product is not yet installed
  41.     'if you wish to issue a trial licence, carry on...
  42.     'otherwise, exit from here
  43.         Dim bIssue As Boolean
  44.         bIssue = IssueTrialLicence()
  45.         If (bIssue = False) Then
  46.           End
  47.         End If
  48.     End If
  49.     
  50.     'Now, it is time to check the licence
  51.     Dim nState As Integer
  52.     nState = CheckLicence()
  53.     Select Case nState
  54.         Case LICENCE_FULL
  55.         'Run in full mode
  56.             g_nRunMode = RUN_FULL
  57.             fMainForm.Show 1
  58.             hr = Sheriff.ReleaseLicence()
  59.         Case LICENCE_DEMO
  60.         'Run in demo mode
  61.             g_nRunMode = RUN_DEMO
  62.             fMainForm.Show 1
  63.         Case LICENCE_EXIT
  64.         'exit
  65.     End Select
  66.     
  67.     Set Sheriff = Nothing
  68.     Set fMainForm = Nothing
  69.     
  70. End Sub
  71. Public Function ChallengeSheriff() As Boolean
  72.     Dim Question As String
  73.     Dim Answer As String
  74.     
  75.     Question = "Hello, Sheriff"
  76.     hr = Sheriff.Challenge(Question, Answer)
  77.     'Verify the Challenge
  78.     Dim Challenger As Object
  79.     Set Challenger = CreateObject("Sheriff.Challenger")
  80.     'Initialize the Challenger with secret codes
  81.     Challenger.Secret1 = "0763198532076621"
  82.     Challenger.Secret2 = "1854207641987532"
  83.     Challenger.Secret3 = "2482159326044927"
  84.     Challenger.Secret4 = "3739062895179618"
  85.     Dim ok As Boolean
  86.     ok = Challenger.VerifyChallenge(Question, Answer)
  87.     If (ok = False) Then
  88.         MsgBox "Challenge Failed"
  89.         'exit now
  90.         ChallengeSheriff = False
  91.         End
  92.     End If
  93.     'we're done with the Challenger, let it go
  94.     Set Challenger = Nothing
  95.     ChallengeSheriff = True
  96. End Function
  97.  
  98. Public Function IssueTrialLicence() As Boolean
  99.     'register product
  100.     Dim hr As Long
  101.     
  102.     hr = Sheriff.RegisterLicence(LICENCE_PATH)
  103.     
  104.     'issue a trial licence
  105.     'set licence policy
  106.     Sheriff.AccessKey = 1  'level one
  107.     Sheriff.CoUsers = 1    'single user
  108.     Sheriff.Meter = 30     '30 days limit
  109.     Sheriff.EndDate = #1/1/1980#    'no expiry
  110.     Sheriff.Type = SLS_TYPE_TIME_METER + SLS_TYPE_CONCURRENCY
  111.     
  112.     'We have to support challenge
  113.     Dim Challenger As Object
  114.     Set Challenger = CreateObject("Sheriff.Challenger")
  115.     'Initialize the Challenger with secret codes
  116.     Challenger.Secret1 = "0763198532076621"
  117.     Challenger.Secret2 = "1854207641987532"
  118.     Challenger.Secret3 = "2482159326044927"
  119.     Challenger.Secret4 = "3739062895179618"
  120.     
  121.     Dim ChallenegingData As String
  122.     Dim ChallengedData As String
  123.     
  124.     ChallengingData = Sheriff.GetChallengeData()
  125.     hr = Challenger.CreateChallenge(ChallengingData, ChallengedData)
  126.          
  127.     hr = Sheriff.IssueLicence(ChallengedData)
  128.     If (FAILED(hr)) Then
  129.         strTitle = "SlsDemoVB"
  130.         Dim strErrorMsg As String
  131.         strErrorMsg = String$(256, 0)
  132.         hr = Sheriff.GetErrorMessage(hr, strErrorMsg)
  133.         MsgBox strErrorMsg, vbExclamation, strTitle
  134.         IssueTrialLicence = False
  135.         End
  136.     End If
  137.     
  138.     'we're done with the Challenger, let it go
  139.     Set Challenger = Nothing
  140.     
  141.     IssueTrialLicence = True
  142. End Function
  143.  
  144. Public Function CheckLicence() As Integer
  145.     Dim hr As Long
  146.     Dim AccessKey As Long
  147.     
  148.     hr = Sheriff.RequestLicence(AccessKey)
  149.     If (SUCCEEDED(hr)) Then
  150.         'query licence information
  151.         hr = Sheriff.QueryLicenceInfo
  152.         If (SUCCEEDED(hr)) Then
  153.         'you may want to check the licence info
  154.         '....
  155.         End If
  156.         
  157.         CheckLicence = LICENCE_FULL
  158.         Exit Function
  159.     End If
  160.     
  161.     'Licence is not ready yet
  162.     If (hr = SLS_E_LICENCE_UNREGISTERED) Then
  163.         hr = Sheriff.RegisterLicence(LICENCE_PATH)
  164.         If (FAILED(hr)) Then
  165.             'error in licence registration
  166.             Dim strTitle As String
  167.             strTitle = "Licence Registation"
  168.             Dim strErrorMsg As String
  169.             strErrorMsg = String$(256, 0)
  170.             hr = Sheriff.GetLastErrorMessage(strErrorMsg)
  171.             MsgBox strErrorMsg, vbExclamation, strTitle
  172.             CheckLicence = LICENCE_EXIT
  173.             Exit Function
  174.         End If
  175.         'Register licence
  176.         frmRegister.Show 1
  177.         CheckLicence = frmRegister.GetRegisterState()
  178.         Exit Function
  179.     End If
  180.     If (hr = SLS_E_LICENCE_UNDEFINED) Then
  181.     'Licence not defined yet
  182.     
  183.         frmRegister.Show 1
  184.         CheckLicence = frmRegister.GetRegisterState()
  185.         Exit Function
  186.     End If
  187.     If (hr = SLS_E_LICENCE_EXPIRED) Then
  188.     'Licence has expired
  189.     'To do,add code here
  190.         Exit Function
  191.     End If
  192.     If (hr = SLS_E_LICENCE_EXCEEDED) Then
  193.     'Licence concurency run out
  194.     'To do,add code here
  195.         Exit Function
  196.     End If
  197.     'Other error
  198.     strTitle = "SlsDemoVB"
  199.     strErrorMsg = String$(256, 0)
  200.     hr = Sheriff.GetLastErrorMessage(strErrorMsg)
  201.     MsgBox strErrorMsg, vbExclamation, strTitle
  202.     CheckLicence = LICENCE_EXIT
  203. End Function
  204.  
  205.